It is known that modern engines are provided with a fuel injection system for directly injecting the fuel into the cylinders of the engine. The fuel injection system generally includes a fuel common rail and a plurality of electrically controlled fuel injectors, which are individually located in a respective cylinder of the engine and which are hydraulically connected to the fuel rail through dedicated injection lines.
The fuel injection control is an important aspect of the engine management system, in order to ensure the engine performance in terms of available torque and reduced fuel consumption and emissions. Such control includes several strategies, one of which is called Fuel Set-point Adaptation strategy (FSA). FSA is used to detect the injection drift that affects injectors commonly used in Diesel applications during their lifetime and produces an increase of nitrogen oxides (NOx) and particulate matter (PM). FSA strategy is also used to detect fuel injection system fault and an injector's drift has to be identified in any component of the system in a quick way. FSA strategy estimates the injection drift considering the intake air mass and the oxygen concentration in the exhaust gas and stores the fuel quantity drift values in a map, storing values of the fuel injection quantity drift, with map points being arranged along an x-axis and along a y-axis representing engine operating points. In particular, such engine operating points are defined by different values of engine speed and requested amount of fuel to be injected by the fuel injector.
The map, which can be considered an adaptive map, is filled in using a spatial propagation logic (so called, “four cells region”), in order to get a smooth filling and avoid unphysical oscillation. In particular, by means of the spatial propagation logic, the map points close to a current engine operating point are updated by spreading the estimated fuel injection quantity drift. The stored value is obtained weighing the fuel injection quantity drift with two factors that take into account the relative distances between the learned engine point and the nearby map points, according to the following equations:
            IR      x        =                  engine_speed        -                  n          ⁡                      (            j            )                                                n          ⁡                      (                          j              +              1                        )                          -                  n          ⁡                      (            j            )                                          IR      y        =                  engine_speed        -                  V          ⁡                      (            i            )                                                V          ⁡                      (                          i              +              1                        )                          -                  V          ⁡                      (            i            )                              
where:                IRx=weighing factor along x axis (engine speed);        IRy=weighing factor along y axis (requested amount of fuel);        n(j), n(j+1)=values of engine speed stored in the map;        engine_speed=current engine speed value, with n(j)<engine_speed<n(j+1);        V(i), V(i+1)=values of requested amount of fuel, stored in the map; and        fuel_request=requested amount of fuel, with V(i)<fuel_request<V(i+1).        
In FIG. 3, an example of a portion of the adaptive map is shown. The map is built as function of the engine operating conditions, namely the engine speed along the X-axis and the requested amount of fuel along the Y-axis. As already mentioned, the map points are the values of the fuel injection quantity drift for each engine operating condition (i.e. for each combination of engine speed values and requested amount of fuel values). In the map portion, as illustrated in FIG. 3, a stored injection drift value in a map point 510 can be identified. By using the spatial propagation logic, a spread fuel quantity drift is calculated for the four map points 500 (the “four cells region”), by means of the stored value 510 and the weighing factors IRx, IRy.
By using the known FSA strategy, the selection of the cells and the weighing factors are too dependent on the adaptive map calibration and the weighing factors are not homogeneously defined in the map. This implies the risk of a not optimized calibration of the strategy. Moreover, if the injectors' physical behavior is quite linear and homogenous over more than one “four cells region”, it is not possible to extend the map spreading outside the “four cells region”. Furthermore, in case of two engine operating points very close to each other but inside a different “four cells region”, the updated values can be very different between each other, producing a discontinuity and a loss of information. Finally, a dedicated logic for the boundary area is needed to manage the situation in which the engine point to be learnt is outside the adaptive map. As a conclusion, the present spatial propagation logic is not enough fast and smooth, above all in case the FSA strategy has to be also used to detect fuel injection system fault.
Therefore, a need exists for a method that controls the amount of fuel to be injected in an internal combustion engine, and, improving the known FSA strategy, allows to obtain a smooth filling of the FSA map, taking into account the physical behavior of the injectors, and a faster learning, if the FSA correction needs to be effective as soon as possible in the injectors lifetime.